package com.java.example.util;

import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.util.Random;

/**
 * @author ：mmzsblog.cn
 * @description：TODO
 * @date ：2024/4/30 22:36
 */
@Component
public class MailUtil {

    @Resource
    private JavaMailSender javaMailSender;

    /**
     * 生成一个随机的六位数字符串。
     * 该方法不接受任何参数。
     *
     * @return 返回一个格式化后的六位数字符串，保证六位数字不会以零开头。
     */
    public String generateRandomSixDigit() {
        // 创建一个Random对象用于生成随机数
        Random random = new Random();
        // 生成一个0到999999之间的随机整数，然后通过String.format格式化为六位数的字符串
        return String.format("%06d", random.nextInt(1000000));
    }


    public void complexMail(String code) {
        MimeMessage mimeMessage = javaMailSender.createMimeMessage();
        try {
            // 开启文件上传
            MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);
            // 设置文件主题
            mimeMessageHelper.setSubject("账号注册验证码");
            // 设置文件内容 第二个参数设置是否支持html
            mimeMessageHelper.setText("账号注册验证码是：<b style='color:red'>" + code + "</b>；" +
                    "将在60秒后失效，请尽快完成验证！", true);
            // 要发送的目标邮箱
            mimeMessageHelper.setTo("mmzsblog@163.com");
            // 设置发送人和配置文件中邮箱一致
            mimeMessageHelper.setFrom("navtool@163.com");
            // 上传附件
            // mimeMessageHelper.addAttachment("", new File(""));
        } catch (MessagingException e) {
            e.printStackTrace();
        }
        javaMailSender.send(mimeMessage);
    }


    public void simpleMail() {
        SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
        // 设置邮件主题
        simpleMailMessage.setSubject("账号激活");
        // 设置要发送的邮件内容
        simpleMailMessage.setText("hello!");
        // 要发送的目标邮箱
        simpleMailMessage.setTo("mmzsblog@163.com");
        // 发送者邮箱和配置文件中的邮箱一致
        simpleMailMessage.setFrom("navtool@163.com");
        javaMailSender.send(simpleMailMessage);
    }

}
